package com.bs.biaoge.util.excel;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.poi.ss.formula.functions.T;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;

/**
 * @author 小姚
 * @pakeageName:com.bs.biaoge.util.excel
 * @ClassName:ExcelProperty
 * @Descirption:
 * @data 2023/3/4 23:07
 */
//获取实体类中的属性
public class ExcelProperty<T> {

    //获取实体类中的所有属性
    public String[] getProperty(Class clazz){
        //获取所有的属性
        Field[] fields = clazz.getDeclaredFields();
        //获取属性的个数
        int length = fields.length;
        String[] objs=new String[length];
        //循环遍历属性
        for (int i=0;i<length;i++){
            objs[i]=fields[i].getName();
        }
        return objs;
    }


    //给实体类中的属性赋值
    public T getPropertyValue(Class<T> clazz,Object[] titles) throws IllegalAccessException, InstantiationException, InvocationTargetException {
        //获取所有的属性名
        T t=null;
        String[] property = getProperty(clazz);
        t = clazz.newInstance();
        for (int i=0;i<property.length;i++){
            BeanUtils.setProperty(t,property[i],titles[i]);
        }
        return t;
    }
}
